PostgreSQL函数和运算符(一) 您所在的位置:网站首页 数据库 乘法 PostgreSQL函数和运算符(一)

PostgreSQL函数和运算符(一)

2024-07-14 19:03| 来源: 网络整理| 查看: 265

  PostgreSQL函数和运算符(一) 分类: PostgreSQL2011-03-17 09:14 3404人阅读 评论(1) 收藏 举报 postgresqlstringwindowsencoding正则表达式hex

目录(?)[+]

    PostgreSQL为内置数据类型提供了大量的函数和运算符。用户也可以定义自己的函数(参考第11章)。在psql中执行命令/df和/do可以分别列出可用的函数和运算符的列表。

       本章中的大部分函数和运算符都是SQL标准中定义的,也有一部分是PostgreSQL自己扩展的。SQL标准定义了一些有特殊语法的字符串函数,这些函数使用特殊关键字而不是逗号来分隔参数,例如from和for。

7.1 逻辑运算符

   常用的逻辑运算符有:

AND

OR

NOT

   SQL 使用三值的布尔逻辑,空值代表"unknown"。 下面逻辑运算符的真值表:

a

b

a AND b

a OR b

TRUE

TRUE

TRUE

TRUE

TRUE

FALSE

FALSE

TRUE

TRUE

NULL

NULL

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

NULL

FALSE

NULL

NULL

NULL

NULL

NULL

a

NOT a

 

TRUE

FALSE

 

FALSE

TRUE

 

NULL

NULL

 

         

 

      运算符 AND 和 OR 满足交换律。

 

7.2 比较运算符

    表 7-1 列出了所有的比较运算符。

表7-1 比较运算符

运算符

描述

大于

=

大于或等于

=

等于

 或 !=

不等于

    注意: != 运算符在进行此法分析时会被自动转换成 。所以不可能让!= 和  实现不同的功能。

    比较运算符可以用于所有可以进行比较的操作的数据类型。所有比较运算符都是二元运算符,返回 boolean类型的结果,类似“1 < 2 < 3” 这样的表达式是非法的。

    除了比较运算符,还可以使用 BETWEEN谓词。 a BETWEEN x AND y 等价于

a >= x AND a  2

2

      

按位运算运算符只能用于整数类型的数据,而其它的运算符可以用于所有的数值类型的数据。按位运算的运算符还可以用于位串类型 bit 和 bit varying,如表7-3所示。

        表7-3列出了所有的数学函数。在该表中dp表示double precision,除非特别指明,函数的返回值的数据类型和它的参数的数据类型相同。表7-4列出了这些数学函数的实例。处理 double precision 数据的函数大多数是在操作系统的C函数库的基础上实现的。

表7-3. 数学函数

函数

返回值类型

描述

abs(x)

和x类型相同

绝对值

cbrt(dp)

Dp

立方根

ceil(dp 或者 numeric)

与输入相同

不小于参数的最小的整数

ceiling(dp or numeric)

与输入相同

不小于参数的最小整数(ceil 的别名)

degrees(dp)

dp

把弧度转为角度

exp(dp 或 numeric)

与输入相同

自然指数

floor(dp 或 numeric)

与输入相同

不大于参数的最大整数

ln(dp 或 numeric)

与输入相同

自然对数

log(dp 或 numeric)

与输入相同

10 为底的对数

log(b numeric, x numeric)

numeric

指定底数的对数

mod(y, x)

和参数类型相同

除法 y/x 的余数(模)

pi()

Dp

"π" 常量

power(a dp, b dp)

Dp

求a的 b 次幂

power(a numeric, b numeric)

numeric

求a的 b 次幂

radians(dp)

Dp

把角度转为弧度

random()

Dp

0.0 到 1.0 之间的随机数值

round(dp 或者 numeric)

与输入相同

约为最接近参数的整数

round(v numeric, s int)

Numeric

约为最接近参数的有s位小数的数字

setseed(dp)

Int

为以后被调用的 random()函数设置种子

sign(dp 或者 numeric)

和输入相同

参数的符号(-1, 0, +1)

sqrt(dp 或者 numeric)

和输入相同

平方根

trunc(dp 或者 numeric)

和输入相同

去掉参数的小数位

trunc(v numeric, s int)

Numeric

将参数截断为含有 s位小数的数字

width_bucket(op numeric, b1 numeric, b2 numeric, count in)

Int

将b1和b2平分成count个取值区间,取值区间的编号从1开始。

 

如果b1>b2,则编号为0的取值区间表示的范围是(b1,正无穷大),编号为count+1的取值区间表示的范围是(负无穷大,b2)。

 

如果b1



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有